{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 泰坦尼克号生存预测——数据预处理与模型选择"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "LIJIANcoder97"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 数据预处理与模型选择\n",
    "### 上一个文件已经通过可视化进行了数据探索，没有发现关联度特别高的属性，图像无法发现的奥秘，或许能通过数学揭示。在这里将对数据进一步处理以满足模型的要求\n",
    "---\n",
    "### 包括\n",
    "- 去除不相关属性\n",
    "- 创建更有代表性的特征属性\n",
    "- 文本转数字\n",
    "- 缺失值处理\n",
    "- X,Y分离"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "from matplotlib import pyplot as plt\n",
    "import seaborn as sns\n",
    "from sklearn.preprocessing import LabelEncoder"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 调用sklearn LabelEncoder()，进行编码，文本转数字。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "def encode_features(data_set, feature_names):\n",
    "    for feature_name in feature_names:\n",
    "        le = LabelEncoder()\n",
    "        le.fit(data_set[feature_name])\n",
    "        encoded_column = le.transform(data_set[feature_name])\n",
    "        data_set[feature_name] = encoded_column\n",
    "    return data_set"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "Taitan_train=pd.read_csv('dataset/titanic/train.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>PassengerId</th>\n",
       "      <th>Survived</th>\n",
       "      <th>Pclass</th>\n",
       "      <th>Name</th>\n",
       "      <th>Sex</th>\n",
       "      <th>Age</th>\n",
       "      <th>SibSp</th>\n",
       "      <th>Parch</th>\n",
       "      <th>Ticket</th>\n",
       "      <th>Fare</th>\n",
       "      <th>Cabin</th>\n",
       "      <th>Embarked</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>Braund, Mr. Owen Harris</td>\n",
       "      <td>male</td>\n",
       "      <td>22.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>A/5 21171</td>\n",
       "      <td>7.2500</td>\n",
       "      <td>NaN</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>Cumings, Mrs. John Bradley (Florence Briggs Th...</td>\n",
       "      <td>female</td>\n",
       "      <td>38.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>PC 17599</td>\n",
       "      <td>71.2833</td>\n",
       "      <td>C85</td>\n",
       "      <td>C</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>Heikkinen, Miss. Laina</td>\n",
       "      <td>female</td>\n",
       "      <td>26.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>STON/O2. 3101282</td>\n",
       "      <td>7.9250</td>\n",
       "      <td>NaN</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>Futrelle, Mrs. Jacques Heath (Lily May Peel)</td>\n",
       "      <td>female</td>\n",
       "      <td>35.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>113803</td>\n",
       "      <td>53.1000</td>\n",
       "      <td>C123</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>Allen, Mr. William Henry</td>\n",
       "      <td>male</td>\n",
       "      <td>35.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>373450</td>\n",
       "      <td>8.0500</td>\n",
       "      <td>NaN</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   PassengerId  Survived  Pclass  \\\n",
       "0            1         0       3   \n",
       "1            2         1       1   \n",
       "2            3         1       3   \n",
       "3            4         1       1   \n",
       "4            5         0       3   \n",
       "\n",
       "                                                Name     Sex   Age  SibSp  \\\n",
       "0                            Braund, Mr. Owen Harris    male  22.0      1   \n",
       "1  Cumings, Mrs. John Bradley (Florence Briggs Th...  female  38.0      1   \n",
       "2                             Heikkinen, Miss. Laina  female  26.0      0   \n",
       "3       Futrelle, Mrs. Jacques Heath (Lily May Peel)  female  35.0      1   \n",
       "4                           Allen, Mr. William Henry    male  35.0      0   \n",
       "\n",
       "   Parch            Ticket     Fare Cabin Embarked  \n",
       "0      0         A/5 21171   7.2500   NaN        S  \n",
       "1      0          PC 17599  71.2833   C85        C  \n",
       "2      0  STON/O2. 3101282   7.9250   NaN        S  \n",
       "3      0            113803  53.1000  C123        S  \n",
       "4      0            373450   8.0500   NaN        S  "
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Taitan_train.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "PassengerId      0\n",
       "Survived         0\n",
       "Pclass           0\n",
       "Name             0\n",
       "Sex              0\n",
       "Age            177\n",
       "SibSp            0\n",
       "Parch            0\n",
       "Ticket           0\n",
       "Fare             0\n",
       "Cabin          687\n",
       "Embarked         2\n",
       "dtype: int64"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Taitan_train.isnull().sum()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "数据规模为891，cabin缺失687，该属性没有意义\n",
    "name 对最后的预测没有影响，drop."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Ticket 属性看起毫无规律，无法提取有用信息所以我们删掉它。值得一提的是Cabin属性（船舱号），它的首字母看起来代表了船舱所在区域的编码，这很有意义，在删掉这个之前，看看它的规律。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Cabin</th>\n",
       "      <th>Survived</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>C85</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>NaN</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>C123</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  Cabin  Survived\n",
       "0   NaN         0\n",
       "1   C85         1\n",
       "2   NaN         1\n",
       "3  C123         1\n",
       "4   NaN         0"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Taitan_cabin=Taitan_train[['Cabin','Survived']]\n",
    "Taitan_cabin.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "丢弃cadin属性值为空的行，再将cabin分类属性变为数字。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\Anaconda3\\lib\\site-packages\\ipykernel_launcher.py:1: SettingWithCopyWarning: \n",
      "A value is trying to be set on a copy of a slice from a DataFrame.\n",
      "Try using .loc[row_indexer,col_indexer] = value instead\n",
      "\n",
      "See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n",
      "  \"\"\"Entry point for launching an IPython kernel.\n"
     ]
    }
   ],
   "source": [
    "Taitan_cabin['bark']=[n for n in Taitan_cabin['Cabin']]\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "丢弃'Cabin','Name','Ticket'属性列"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "Taitan_train=Taitan_train.drop(['Cabin','Name','Ticket'],axis=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>PassengerId</th>\n",
       "      <th>Survived</th>\n",
       "      <th>Pclass</th>\n",
       "      <th>Sex</th>\n",
       "      <th>Age</th>\n",
       "      <th>SibSp</th>\n",
       "      <th>Parch</th>\n",
       "      <th>Fare</th>\n",
       "      <th>Embarked</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>male</td>\n",
       "      <td>22.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>7.2500</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>female</td>\n",
       "      <td>38.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>71.2833</td>\n",
       "      <td>C</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>female</td>\n",
       "      <td>26.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>7.9250</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>female</td>\n",
       "      <td>35.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>53.1000</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>male</td>\n",
       "      <td>35.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>8.0500</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   PassengerId  Survived  Pclass     Sex   Age  SibSp  Parch     Fare Embarked\n",
       "0            1         0       3    male  22.0      1      0   7.2500        S\n",
       "1            2         1       1  female  38.0      1      0  71.2833        C\n",
       "2            3         1       3  female  26.0      0      0   7.9250        S\n",
       "3            4         1       1  female  35.0      1      0  53.1000        S\n",
       "4            5         0       3    male  35.0      0      0   8.0500        S"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Taitan_train.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 对sex embark属性进行编码"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array(['female', 'male'], dtype=object)"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "le = LabelEncoder()\n",
    "le.fit(Taitan_train['Sex'])\n",
    "le.classes_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "Taitan_train['Sex']=le.transform(Taitan_train['Sex']) "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Embarked 属性有缺失值，要先进行处理，缺失值替换为最多的登船口"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "S    644\n",
       "C    168\n",
       "Q     77\n",
       "Name: Embarked, dtype: int64"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Taitan_train.Embarked.value_counts()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "Taitan_train['Embarked'] = Taitan_train['Embarked'].fillna('S')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array(['C', 'Q', 'S'], dtype=object)"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "l = LabelEncoder()\n",
    "l.fit(Taitan_train['Embarked'])\n",
    "l.classes_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "Taitan_train['Embarked']=l.transform(Taitan_train['Embarked']) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>PassengerId</th>\n",
       "      <th>Survived</th>\n",
       "      <th>Pclass</th>\n",
       "      <th>Sex</th>\n",
       "      <th>Age</th>\n",
       "      <th>SibSp</th>\n",
       "      <th>Parch</th>\n",
       "      <th>Fare</th>\n",
       "      <th>Embarked</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>22.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>7.2500</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>38.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>71.2833</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "      <td>26.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>7.9250</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>35.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>53.1000</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>35.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>8.0500</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   PassengerId  Survived  Pclass  Sex   Age  SibSp  Parch     Fare  Embarked\n",
       "0            1         0       3    1  22.0      1      0   7.2500         2\n",
       "1            2         1       1    0  38.0      1      0  71.2833         0\n",
       "2            3         1       3    0  26.0      0      0   7.9250         2\n",
       "3            4         1       1    0  35.0      1      0  53.1000         2\n",
       "4            5         0       3    1  35.0      0      0   8.0500         2"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Taitan_train.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 编码完毕\n",
    "### 对Age 属性进行处理，缺失值替换"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>PassengerId</th>\n",
       "      <th>Survived</th>\n",
       "      <th>Pclass</th>\n",
       "      <th>Sex</th>\n",
       "      <th>Age</th>\n",
       "      <th>SibSp</th>\n",
       "      <th>Parch</th>\n",
       "      <th>Fare</th>\n",
       "      <th>Embarked</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>22.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>7.2500</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>38.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>71.2833</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "      <td>26.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>7.9250</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>35.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>53.1000</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>35.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>8.0500</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   PassengerId  Survived  Pclass  Sex   Age  SibSp  Parch     Fare  Embarked\n",
       "0            1         0       3    1  22.0      1      0   7.2500         2\n",
       "1            2         1       1    0  38.0      1      0  71.2833         0\n",
       "2            3         1       3    0  26.0      0      0   7.9250         2\n",
       "3            4         1       1    0  35.0      1      0  53.1000         2\n",
       "4            5         0       3    1  35.0      0      0   8.0500         2"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Taitan_train['Age'] = Taitan_train['Age'].fillna(Taitan_train['Age'].median())\n",
    "Taitan_train.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "再上一次作业的探索中发现了乘客存活率和SibSp，Parch两个属性有关系，但不明显。表现为亲人越多，存活率越低。\n",
    "#### 创建family属性代表乘客的亲人数目探索其与存活率的关系"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>PassengerId</th>\n",
       "      <th>Survived</th>\n",
       "      <th>Pclass</th>\n",
       "      <th>Sex</th>\n",
       "      <th>Age</th>\n",
       "      <th>SibSp</th>\n",
       "      <th>Parch</th>\n",
       "      <th>Fare</th>\n",
       "      <th>Embarked</th>\n",
       "      <th>Family</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>22.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>7.2500</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>38.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>71.2833</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "      <td>26.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>7.9250</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>35.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>53.1000</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>35.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>8.0500</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   PassengerId  Survived  Pclass  Sex   Age  SibSp  Parch     Fare  Embarked  \\\n",
       "0            1         0       3    1  22.0      1      0   7.2500         2   \n",
       "1            2         1       1    0  38.0      1      0  71.2833         0   \n",
       "2            3         1       3    0  26.0      0      0   7.9250         2   \n",
       "3            4         1       1    0  35.0      1      0  53.1000         2   \n",
       "4            5         0       3    1  35.0      0      0   8.0500         2   \n",
       "\n",
       "   Family  \n",
       "0       2  \n",
       "1       2  \n",
       "2       1  \n",
       "3       2  \n",
       "4       1  "
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Taitan_train['Family']=Taitan_train['SibSp']+Taitan_train['Parch']+1\n",
    "Taitan_train.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "观察相关性"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.rc_context at 0x22e5eb14978>"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAl4AAAEKCAYAAADD1lv6AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAH0dJREFUeJzt3X+YV3Wd9/HnW8AgNTCl3RRssIVdWH+gjEJ5rZEW4o8Lc4MAf6BdFuuvbrcftro/yq2uLnO9tltb19JM1FRALaWW1lq19K7wZkBEgUgUbpwb7iBUNn8Dvu8/vsdphIH5Dsyc78x8n4/rmmvO+ZzP98z7MzMcXnPO+Z5PZCaSJEnqenvVugBJkqR6YfCSJEkqicFLkiSpJAYvSZKkkhi8JEmSSmLwkiRJKonBS1LdiIjvRcSGiHhqJ9sjIq6LiFURsTQiji67Rkm9m8FLUj2ZBUzcxfaTgeHFx0zghhJqklRHDF6S6kZmPgI8v4supwO3ZcUCYFBEvLec6iTVg761LgDgwAMPzIaGhlqXIalEixYt+n1mDq51Hds5GHiu1Xpz0ba+daeImEnljBj77LPPmL/4i78orUBJtbcnx69uEbwaGhpoamqqdRmSShQR/6fWNbQh2mjbYV61zLwRuBGgsbExPX5J9WVPjl9eapSkP2oGhrZaHwKsq1Etknohg5ck/dE8YEbx7sZxwObMXN/eiySpWt3iUqMklSEi7gLGAwdGRDPwZaAfQGZ+G5gPnAKsAl4BPlmbSiX1VgYv9VpbtmyhubmZ1157rdal1LX+/fszZMgQ+vXrV+tSyMzp7WxP4OKSypFUhwxe6rWam5vZb7/9aGhoIKKte6bV1TKTTZs20dzczLBhw2pdjiTVnPd4qdd67bXXOOCAAwxdNRQRHHDAAZ51lKSCwUu9mqGr9vwZSNIfGbwkSZJK4j1eqht3Pra2U/d35thDOnV/1Zo3bx7Lly/n8ssv3+N97bvvvrz00kudUJUkqRo9M3g13bJjW6Pv+lbvsXXrVvr2bfuf56RJk5g0aVLJFUmSOoOXGqUu9PLLL3Pqqady5JFHcthhhzFnzhwaGhr4/e9/D0BTUxPjx48H4Morr2TmzJlMmDCBGTNmMHbsWJYtW9ayr/Hjx7No0SJmzZrFJZdcwubNm2loaODNN98E4JVXXmHo0KFs2bKFZ555hokTJzJmzBj+6q/+it/85jcArF69mg984AMcc8wx/NM//VO53wxJksFL6kr/+Z//yUEHHcQTTzzBU089xcSJE3fZf9GiRdx///3ceeedTJs2jblz5wKwfv161q1bx5gxY1r6Dhw4kCOPPJJf/OIXAPzoRz/ipJNOol+/fsycOZNvfetbLFq0iGuuuYaLLroIgEsvvZQLL7yQhQsX8qd/+qddNGpJ0s4YvKQudPjhh/Nf//Vf/N3f/R2PPvooAwcO3GX/SZMmMWDAAAA+8YlPcPfddwMwd+5cpkyZskP/qVOnMmfOHABmz57N1KlTeemll/jVr37FlClTGD16NH/zN3/D+vWVWW9++ctfMn165Rmi55xzTqeNU5JUnZ55j5fUQ4wYMYJFixYxf/58rrjiCiZMmEDfvn1bLg9u/3yrffbZp2X54IMP5oADDmDp0qXMmTOH73znOzvsf9KkSVxxxRU8//zzLFq0iBNOOIGXX36ZQYMGsWTJkjZr8vEOklQ7nvGSutC6det45zvfydlnn80XvvAFFi9eTENDA4sWLQLg3nvv3eXrp02bxtVXX83mzZs5/PDDd9i+7777cuyxx3LppZdy2mmn0adPH971rncxbNiwlrNlmckTTzwBwHHHHcfs2bMBuOOOOzpzqJKkKnjGS3WjFo9/ePLJJ7nsssvYa6+96NevHzfccAOvvvoq559/Pl//+tcZO3bsLl8/efJkLr300l3eCD916lSmTJnCz3/+85a2O+64gwsvvJCvfe1rbNmyhWnTpnHkkUdy7bXXcuaZZ3Lttdfy8Y9/vLOGKUmqUlTmhK2txsbGbGpqqv4FPk5CVVixYgUjR46sdRmi7Z9FRCzKzMYaldRpOnz8ktTj7cnxy0uNkiRJJTF4SZIklcTgJUmSVBKDlyRJUkkMXpIkSSUxeEmSJJXE53ipfrT1GJI90QWPMJk1axYTJkzgoIMO6vR978wHP/hBfvWrX+3xfs477zxOO+00Jk+e3AlVSVLv5BkvqRuZNWsW69at69R9ZmbLFEVt6YzQJUmqjsFL6iJr1qxh5MiRfPrTn+Yv//IvmTBhAq+++ioAS5YsYdy4cRxxxBGcccYZvPDCC9xzzz00NTVx1llnMXr06Ja+b7nuuusYNWoURxxxBNOmTQPgyiuv5Jprrmnpc9hhh7FmzZqWr33RRRdx9NFH89WvfpUvfvGLLf1mzZrFZz7zGaAy7RBUnoA/f/78lj7nnXce9957L9u2beOyyy7jmGOO4YgjjmiZMzIzueSSSxg1ahSnnnoqGzZs6ILvoiT1LgYvqQs9/fTTXHzxxSxbtoxBgwa1zM04Y8YMvvGNb7B06VIOP/xw/vmf/5nJkyfT2NjIHXfcwZIlSxgwYMDb9nXVVVfx+OOPs3TpUr797W+3+7VXrlzJjBkzePzxx7nooov4wQ9+0LJtzpw5TJ069W39p02bxpw5cwB44403ePDBBznllFO4+eabGThwIAsXLmThwoXcdNNNrF69mh/+8IesXLmSJ598kptuuskzZ5JUBYOX1IWGDRvG6NGjARgzZgxr1qxh8+bNvPjii3zoQx8C4Nxzz+WRRx5pd19HHHEEZ511Ft///vfp27f92zPf9773MW7cOAAGDx7MoYceyoIFC9i0aRMrV67kuOOOe1v/k08+mYceeojXX3+dn/zkJxx//PEMGDCAn/70p9x2222MHj2asWPHsmnTJp5++mkeeeQRpk+fTp8+fTjooIM44YQTOvrtkaS6Y/CSutA73vGOluU+ffqwdevW3d7Xf/zHf3DxxRezaNEixowZw9atW+nbt+/b7t967bXXWpb32Weft71+6tSpzJ07l3vvvZczzjiDiHjb9v79+zN+/HgeeOAB5syZ03I5MzP51re+xZIlS1iyZAmrV69mwoQJADvsQ5K0awYvqWQDBw5k//3359FHHwXg9ttvbzn7td9++/GHP/xhh9e8+eabPPfcc3z4wx/m6quv5sUXX+Sll16ioaGBxYsXA7B48WJWr16906/713/919x3333cddddO1xmfMu0adO45ZZbePTRRznppJMAOOmkk7jhhhvYsmULAL/97W95+eWXOf7445k9ezbbtm1j/fr1PPzww7v/TZGkOuHjJFQ/uuDxD7vr1ltv5YILLuCVV17h0EMP5ZZbKo+6OO+887jgggsYMGAAv/71r1vu89q2bRtnn302mzdvJjP57Gc/y6BBg/j4xz/echnwmGOOYcSIETv9mvvvvz+jRo1i+fLlHHvssW32mTBhAjNmzGDSpEnsvffeAHzqU59izZo1HH300WQmgwcP5r777uOMM87goYce4vDDD2fEiBEt4VGStHORmbWugcbGxmxqaqr+BW09j6kb/aeq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\n",
      "text/plain": [
       "<Figure size 720x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "survived = 'survived'\n",
    "not_survived = 'not survived'\n",
    "fig, axes = plt.subplots(nrows=1, ncols=2,figsize=(10, 4))\n",
    "ax = sns.distplot(Taitan_train[Taitan_train['Survived']==1].Family.dropna(), bins=18, label = survived, ax = axes[0], kde =False)\n",
    "ax = sns.distplot(Taitan_train[Taitan_train['Survived']==0].Family.dropna(), bins=40, label = not_survived, ax = axes[0], kde =False)\n",
    "ax.legend()\n",
    "plt.xkcd()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>PassengerId</th>\n",
       "      <th>Survived</th>\n",
       "      <th>Pclass</th>\n",
       "      <th>Sex</th>\n",
       "      <th>Age</th>\n",
       "      <th>SibSp</th>\n",
       "      <th>Parch</th>\n",
       "      <th>Fare</th>\n",
       "      <th>Embarked</th>\n",
       "      <th>Family</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>PassengerId</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>-0.005007</td>\n",
       "      <td>-0.035144</td>\n",
       "      <td>0.042939</td>\n",
       "      <td>0.034212</td>\n",
       "      <td>-0.057527</td>\n",
       "      <td>-0.001652</td>\n",
       "      <td>0.012658</td>\n",
       "      <td>0.013128</td>\n",
       "      <td>-0.040143</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Survived</th>\n",
       "      <td>-0.005007</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>-0.338481</td>\n",
       "      <td>-0.543351</td>\n",
       "      <td>-0.064910</td>\n",
       "      <td>-0.035322</td>\n",
       "      <td>0.081629</td>\n",
       "      <td>0.257307</td>\n",
       "      <td>-0.167675</td>\n",
       "      <td>0.016639</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Pclass</th>\n",
       "      <td>-0.035144</td>\n",
       "      <td>-0.338481</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.131900</td>\n",
       "      <td>-0.339898</td>\n",
       "      <td>0.083081</td>\n",
       "      <td>0.018443</td>\n",
       "      <td>-0.549500</td>\n",
       "      <td>0.162098</td>\n",
       "      <td>0.065997</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Sex</th>\n",
       "      <td>0.042939</td>\n",
       "      <td>-0.543351</td>\n",
       "      <td>0.131900</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.081163</td>\n",
       "      <td>-0.114631</td>\n",
       "      <td>-0.245489</td>\n",
       "      <td>-0.182333</td>\n",
       "      <td>0.108262</td>\n",
       "      <td>-0.200988</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Age</th>\n",
       "      <td>0.034212</td>\n",
       "      <td>-0.064910</td>\n",
       "      <td>-0.339898</td>\n",
       "      <td>0.081163</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>-0.233296</td>\n",
       "      <td>-0.172482</td>\n",
       "      <td>0.096688</td>\n",
       "      <td>-0.018754</td>\n",
       "      <td>-0.245619</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>SibSp</th>\n",
       "      <td>-0.057527</td>\n",
       "      <td>-0.035322</td>\n",
       "      <td>0.083081</td>\n",
       "      <td>-0.114631</td>\n",
       "      <td>-0.233296</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.414838</td>\n",
       "      <td>0.159651</td>\n",
       "      <td>0.068230</td>\n",
       "      <td>0.890712</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Parch</th>\n",
       "      <td>-0.001652</td>\n",
       "      <td>0.081629</td>\n",
       "      <td>0.018443</td>\n",
       "      <td>-0.245489</td>\n",
       "      <td>-0.172482</td>\n",
       "      <td>0.414838</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.216225</td>\n",
       "      <td>0.039798</td>\n",
       "      <td>0.783111</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Fare</th>\n",
       "      <td>0.012658</td>\n",
       "      <td>0.257307</td>\n",
       "      <td>-0.549500</td>\n",
       "      <td>-0.182333</td>\n",
       "      <td>0.096688</td>\n",
       "      <td>0.159651</td>\n",
       "      <td>0.216225</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>-0.224719</td>\n",
       "      <td>0.217138</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Embarked</th>\n",
       "      <td>0.013128</td>\n",
       "      <td>-0.167675</td>\n",
       "      <td>0.162098</td>\n",
       "      <td>0.108262</td>\n",
       "      <td>-0.018754</td>\n",
       "      <td>0.068230</td>\n",
       "      <td>0.039798</td>\n",
       "      <td>-0.224719</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.066516</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Family</th>\n",
       "      <td>-0.040143</td>\n",
       "      <td>0.016639</td>\n",
       "      <td>0.065997</td>\n",
       "      <td>-0.200988</td>\n",
       "      <td>-0.245619</td>\n",
       "      <td>0.890712</td>\n",
       "      <td>0.783111</td>\n",
       "      <td>0.217138</td>\n",
       "      <td>0.066516</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             PassengerId  Survived    Pclass       Sex       Age     SibSp  \\\n",
       "PassengerId     1.000000 -0.005007 -0.035144  0.042939  0.034212 -0.057527   \n",
       "Survived       -0.005007  1.000000 -0.338481 -0.543351 -0.064910 -0.035322   \n",
       "Pclass         -0.035144 -0.338481  1.000000  0.131900 -0.339898  0.083081   \n",
       "Sex             0.042939 -0.543351  0.131900  1.000000  0.081163 -0.114631   \n",
       "Age             0.034212 -0.064910 -0.339898  0.081163  1.000000 -0.233296   \n",
       "SibSp          -0.057527 -0.035322  0.083081 -0.114631 -0.233296  1.000000   \n",
       "Parch          -0.001652  0.081629  0.018443 -0.245489 -0.172482  0.414838   \n",
       "Fare            0.012658  0.257307 -0.549500 -0.182333  0.096688  0.159651   \n",
       "Embarked        0.013128 -0.167675  0.162098  0.108262 -0.018754  0.068230   \n",
       "Family         -0.040143  0.016639  0.065997 -0.200988 -0.245619  0.890712   \n",
       "\n",
       "                Parch      Fare  Embarked    Family  \n",
       "PassengerId -0.001652  0.012658  0.013128 -0.040143  \n",
       "Survived     0.081629  0.257307 -0.167675  0.016639  \n",
       "Pclass       0.018443 -0.549500  0.162098  0.065997  \n",
       "Sex         -0.245489 -0.182333  0.108262 -0.200988  \n",
       "Age         -0.172482  0.096688 -0.018754 -0.245619  \n",
       "SibSp        0.414838  0.159651  0.068230  0.890712  \n",
       "Parch        1.000000  0.216225  0.039798  0.783111  \n",
       "Fare         0.216225  1.000000 -0.224719  0.217138  \n",
       "Embarked     0.039798 -0.224719  1.000000  0.066516  \n",
       "Family       0.783111  0.217138  0.066516  1.000000  "
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Taitan_train.corr()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "看起来还不错，通过观察SibSp，Parch属性和存活率的相关性，可以发现，配偶和兄弟姐妹比父母孩子对乘客的存活率影响更大。\n",
    "##### 同时sex属性相比其他属性对乘客的存活率影响很大，让我们看一下这个有趣的事情。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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vZ9//hmAadOmsXbt2uv/AiF45pln+PXXXwHIy8tjxowZDB8+nGeeeYYDBw64nffSpUtMmzaNhIQE/vWvf5GRkVHsItildd/7gs37Ul28Fm1+f4FrD5ihahc+V5ZTKxEv0y+Azp07s3r1ar799lu6devGsGHDSEtLUz/Pycnh3//+N48//jjr169X97/xxhvcf//9HDp0iH379nHXXXcxevToYn/np59+YuzYsdStW5e7776bKVOmADBjxgzef/999bhTp06pS3idO3eOjz/+mOzsbGbPnk2/fv2YN28eaWlpPPzww6Snp6vfO3nyJI899hhCCE6dOsWnn34KwK5du3jmmWfcyrJq1Spmz56t/v3DDz8wcuRIRo8ezcKFC916sCwWC0uWLOFvf/sbTz/9NEePHiUiIgKdTkdRFNeIrKjde50DJluQ3oeSVNWTHjBlCDLQz3kjexRDkXsNjKn5WxrkpedvLkJkyQWL0Slotvwuf+HwYFw0/3O7B938+WRnZ/Pnn39y7733smDBApo2bcqECRNISkoCYOnSpdxyyy2sXr2aFStW0K5dOy5fvozBYKBly5ZqDiqtVkuzZs2KNc4pU6YwduxY9Ho9CxYsoGHDhly8eJGkpCS+/fZbt+HCNWvWqLFbn376KQkJCdx2222cOnWKX3/9lUWLFpGens7bb79Namoq4GzFTpo0SS33W2+9xcqVKwE4c+YMb731lnr+/fv3M2fOHEwmE2azme7du/Phhx8SERHBkSNH6NmzJ5cuXQLg6NGjxMfH8/XXX6PT6Zg9ezbffPNNuR0wX7B5X6qL16IMQeI6BFm1DphHMaxepl/gzIv35ptv0q9fP5o0acKmTZuYN28e4Fw6p23btkyfPl2Nq1JStTRt2pTQ0FCEEFitVho2bEj9+vWL/I1ffvmFbt26sW3bNp5//nkSExO5ePEiAP/73//ceqv27dunNvh27drFP/7xD2699VbmzZuH0Wjk9ddfx8/Pj02bNvHFF1+o35s1axY7d+4EcGtg5ubmMmfOHE6ePOm8SkIwefJkTp06BcA777xDv379ALDZbDz11FPMmTNH/btfv35MnDgRq9XKkSNHePHFF4vVL6g6DfMaBywnJweDwSAXPfVCTFbnjefwJAYsP/g+2KDL/9uDFmRVkp9CA1H2ZIrnzp1j3759LF++HIBjx45hNBqZ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xyeffCL9+/eX8ePHSzqdLjm2atUqqa6uloEDB8r/+3//T4466ihRFEWef/75HpJ267j++uslFArJ6aefLpMnT5bKykpZtGiRd/ytt96ScDgsw4cPl+uuu04OOuggMU1T3nrrrW6TYZcwwA477DA5+OCDvY5g27accMIJMnHixB6WrGc5/vjj5cILL/TaZf369aKqqsycOVNERB588EExDKOkUz399NOiKIqsXLmyR2TuSe68806JRCIyceLEEgNs9uzZAsj//u//emVz584VQBYuXNgTovYY99xzjxiGIU8//XSnYwsWLBBA/vrXv3pl77//vgC7nPLd0di2LSNGjJDJkydLLpcTEWdAcMghh+zShr5lWbLXXnvJLbfcIrZti4jICy+8IIDMnz9fRER+8IMfSP/+/aWhocE7b/r06dKnTx/JZrM9IvfWYlmWHHbYYXLEEUeIaZolBtg555wj++yzjzQ3N3tll19+uQwZMmSXGqC0t7fLvvvuKwcffLC0trZ2On7SSSfJqFGjJJFIeGVTp06VAw44wOsDOzsNDQ1iGIb87W9/88qOOeYYOeOMM7z/jxkzRiZNmuT1Udu25fDDD5fjjjuu2+TY6Q2wdevWCSAvvvhiSfmzzz4rgGzYsKGHJNv5+PDDDwWQRx99VEREjj32WPnud79b8p1CoSDV1dXy29/+tidE7DGWL18uoVBIfv/738vUqVNLDLCpU6fKEUccUfJ927Zl6NChcvXVV+9oUXuMVColNTU1MmvWrC0e/8lPfiKjRo3qpGQPPvhg+d73vrcjRNxlcQ3VzQ36+++/XzRN84yy3YG//OUvAsjy5cvFsiypra2VW2+9teQ7K1asEED+8Y9/9IyQW8ltt90moVBIVqxYIcFg0DPAcrmcxGIx+dOf/lTy/cWLFwvQrV6T7c2dd94pe++99xaNr2QyKYZhyGOPPVZS/vrrr3v3fFdg0aJFAsjixYu9silTpshRRx0lIiIrV64UQObNm1dy3iOPB9vx2wAAEHlJREFUPCKAtLe3d4scO30M2L/+9S8ADj300JLywYMHA05MhY8zJ3/uuedSU1PD5MmTAXjjjTeYMGFCyfc0TWPgwIF7VLsVCgXOPfdcRowYwRVXXNHp+JbaSVEUBg8evEe104MPPoiI8Nlnn3HCCScwbdo0lixZ4h1322nzLcb2tHbaGubN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\n",
      "text/plain": [
       "<Figure size 720x288 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "survived = 'survived'\n",
    "not_survived = 'not survived'\n",
    "fig, axes = plt.subplots(nrows=1, ncols=2,figsize=(10, 4))\n",
    "women = Taitan_train[Taitan_train['Sex']==0]\n",
    "men = Taitan_train[Taitan_train['Sex']==1]\n",
    "ax = sns.distplot(women[women['Survived']==1].Age.dropna(), bins=18, label = survived, ax = axes[0], kde =False)\n",
    "ax = sns.distplot(women[women['Survived']==0].Age.dropna(), bins=40, label = not_survived, ax = axes[0], kde =False)\n",
    "ax.legend()\n",
    "ax.set_title('Female')\n",
    "ax = sns.distplot(men[men['Survived']==1].Age.dropna(), bins=18, label = survived, ax = axes[1], kde = False)\n",
    "ax = sns.distplot(men[men['Survived']==0].Age.dropna(), bins=40, label = not_survived, ax = axes[1], kde = False)\n",
    "ax.legend()\n",
    "plt.xkcd()\n",
    "_ = ax.set_title('Male')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "现在已经有了清理好的数据集了"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>PassengerId</th>\n",
       "      <th>Survived</th>\n",
       "      <th>Pclass</th>\n",
       "      <th>Sex</th>\n",
       "      <th>Age</th>\n",
       "      <th>SibSp</th>\n",
       "      <th>Parch</th>\n",
       "      <th>Fare</th>\n",
       "      <th>Embarked</th>\n",
       "      <th>Family</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>22.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>7.2500</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>38.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>71.2833</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "      <td>26.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>7.9250</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>35.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>53.1000</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>35.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>8.0500</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   PassengerId  Survived  Pclass  Sex   Age  SibSp  Parch     Fare  Embarked  \\\n",
       "0            1         0       3    1  22.0      1      0   7.2500         2   \n",
       "1            2         1       1    0  38.0      1      0  71.2833         0   \n",
       "2            3         1       3    0  26.0      0      0   7.9250         2   \n",
       "3            4         1       1    0  35.0      1      0  53.1000         2   \n",
       "4            5         0       3    1  35.0      0      0   8.0500         2   \n",
       "\n",
       "   Family  \n",
       "0       2  \n",
       "1       2  \n",
       "2       1  \n",
       "3       2  \n",
       "4       1  "
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Taitan_train.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [],
   "source": [
    "Taitan_p=Taitan_train['Survived']\n",
    "Taitan_train=Taitan_train.drop(['Survived'],axis=1)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 模型选择"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "泰坦尼克号问题是一个二分类问题，可供选择的分类模型有很多，网上分类准确率最高的模型是SVM支持向量机，计划选择k近邻模型，逻辑回归，再做SVM，最后尝试神经网络ANN。K近邻（KNN）是一个多分类模型，逻辑回归是一个处理2分类问题的模型，易于理解和实现，所以从K近邻（KNN）开始尝试对数据进行分类。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "模型实现工具为:机器学习库sk-learn，深度学习库tensorflow"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
